#ifndef LOGINWIDGET_H
#define LOGINWIDGET_H

#include <QWidget>
#include <QLineEdit>
#include <QPushButton>
#include <QCheckBox>
#include <QLabel>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QMessageBox>
#include <QDialog>
#include <QTcpSocket>

namespace Ui {
class LoginWidget;
}

class LoginWidget : public QWidget
{
    Q_OBJECT

public:
    explicit LoginWidget(QWidget *parent = nullptr);
    ~LoginWidget();

private slots:
    void onLoginButtonClicked();      // 登录按钮点击
    void onExitButtonClicked();       // 退出按钮点击
    void onRegisterButtonClicked();   // 注册按钮点击
    void onForgotPasswordButtonClicked();  // 忘记密码按钮点击
    void readServerResponse();        // 处理从服务器读取到的响应

signals:
    void showRegisterWidget();

private:
    void connectToServer();            // 连接服务器
    void sendRequest(const QString &request);  // 发送请求到服务器

    Ui::LoginWidget *ui;              // UI 界面
    QTcpSocket *socket;               // TCP 套接字，用于与服务器通信

    QLineEdit *userLineEdit;          // 用户名输入框
    QLineEdit *passwordLineEdit;      // 密码输入框
    QCheckBox *rememberCheckBox;      // 记住密码复选框
    QPushButton *loginButton;         // 登录按钮
    QPushButton *registerButton;      // 注册按钮
};

#endif // LOGINWIDGET_H
